Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

608
Visualizações
SQLSTATE[HY000]: Error general: 1005 No se puede crear la tabla `Projectname`.`users` (errno: 150 "La restricción de clave externa está formada incorrectamente")
Schema::create('projects', function (Blueprint $table) { $table->id(); $table->string('name'); $table->timestamps(); }); Schema::create('users', function (Blueprint $table) { $table->id(); $table->foreignId('project_id')->constrained(); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); Schema::create('tasks', function (Blueprint $table) { $table->id(); $table->foreignId('user_id')->constrained(); $table->string('name'); $table->timestamps(); });

Cuando ejecuto la php artisan migrate , solo se crea la tabla de usuarios y luego el proceso de migración se detiene...

SQLSTATE[HY000]: Error general: 1005 No se puede crear la tabla Projectname . users (errno: 150 "La restricción de clave externa está formada incorrectamente") (SQL: alterar la tabla users agregar restricción users_project_id_foreign clave externa ( project_id ) hace referencia projects ( id ))

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Busque su directorio de migración , verá todos sus archivos de migración, como 2014_10_12_000000_create_users_table

Está recibiendo este error porque su project_create_table debe migrarse antes que el archivo create_users_table .

De forma predeterminada, laravel hace que cada nombre de archivo de migración tenga un formato de date_time , como 2014_10_12_000000_table_names.php , de modo que todos los archivos se pueden migrar en serie.
Así que cambie su nombre de archivo create_users_table con una date_time , para que pueda migrar después de projects_create_table , como:

 2020_01_01_000000_create_projects_table.php 2020_01_01_000001_create_users_table.php

Ahora, si ejecuta php artisan migrate , al principio se creará la tabla de projects , luego la tabla de users .

over 4 years ago · Santiago Trujillo Relatório

0

Usó constrained() que tiende a encontrar el project de tabla o user No los projects o users . En ese caso, debe especificar el nombre de la tabla en constrained() .

 Schema::create('projects', function (Blueprint $table) { $table->id(); $table->string('name'); $table->timestamps(); }); Schema::create('users', function (Blueprint $table) { $table->id(); $table->foreignId('project_id')->constrained('projects'); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); Schema::create('tasks', function (Blueprint $table) { $table->id(); $table->foreignId('user_id')->constrained('users'); $table->string('name'); $table->timestamps(); });

Puedes estudiar más desdeaquí

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda